package com.leetcode;

import java.util.Scanner;

/**
 * 大整数乘法
 * 数学公式
 * a=a1*a0   b=b1*b0
 * n=2(位数) 必须得偶数
 * c2=a*b=a1*b1*10^n
 * c0=a0*b0
 * c1=(a1*b0+a0*b1)*10^n/2
 */
public class 大整数乘法 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // 第一个数字
        int n = scanner.nextInt();
        // 第一个数字的位数
        int nbyte = solve(n);
        // 第二个数字
        int m = scanner.nextInt();
        // 第二个数字的位数
        int mbyte = solve(m);

        System.out.println(n * m);

        // n的高位
        int nHigh = n / (int) Math.pow(10, nbyte / 2);
        // n的低位
        int nLow = n % (int) Math.pow(10, nbyte / 2);

        // m的高位
        int mHigh = m / (int) Math.pow(10, mbyte / 2);
        // m的低位
        int mLow = m % (int) Math.pow(10, mbyte / 2);
        // 相乘得出结果
        Biginteger(nHigh, nLow, mHigh, mLow, nbyte);
    }

    private static void Biginteger(int nHigh, int nLow, int mHigh, int mLow, int nbyte) {
        int c2 = nHigh * mHigh * (int) Math.pow(10, nbyte);
        int c0 = nLow * mLow;
//        int c1 = ((nHigh - nLow) * (mLow - mHigh) + nHigh * mHigh + nLow * mLow) * (int) Math.pow(10, nbyte / 2);
        int c1 = (nHigh * mLow + nLow * mHigh) * (int) Math.pow(10, nbyte / 2);
        int result = c2 + c1 + c0;
        System.out.println(result);
    }

    /**
     * 获取位数
     *
     * @return
     */
    private static int solve(int n) {
        int i = 1;
        while (n > 10) {
            n = n / 10;
            i++;
        }
        return i;
    }

}
